home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume16 / ecu3 / part31 < prev    next >
Encoding:
Internet Message Format  |  1991-01-06  |  55.8 KB

  1. From: wht@n4hgf.uucp (Warren Tucker)
  2. Newsgroups: comp.sources.misc
  3. Subject: v16i055:  ECU async comm package rev 3.0, Part31/35
  4. Message-ID: <1991Jan6.054034.28972@sparky.IMD.Sterling.COM>
  5. Date: 6 Jan 91 05:40:34 GMT
  6. Approved: kent@sparky.imd.sterling.com
  7. X-Checksum-Snefru: ac68f828 f49acfaf 5991e514 2ece4e93
  8.  
  9. Submitted-by: wht@n4hgf.uucp (Warren Tucker)
  10. Posting-number: Volume 16, Issue 55
  11. Archive-name: ecu3/part31
  12.  
  13. ---- Cut Here and feed the following to sh ----
  14. #!/bin/sh
  15. # This is part 31 of ecu3
  16. if touch 2>&1 | fgrep 'amc' > /dev/null
  17.  then TOUCH=touch
  18.  else TOUCH=true
  19. fi
  20. # ============= ckermit/ckermit.03 ==============
  21. if test ! -d 'ckermit'; then
  22.     echo 'x - creating directory ckermit'
  23.     mkdir 'ckermit'
  24. fi
  25. echo 'x - extracting ckermit/ckermit.03 (Text)'
  26. sed 's/^X//' << 'SHAR_EOF' > 'ckermit/ckermit.03' &&
  27. X#!/bin/sh
  28. X# this is ckermit.03 (part 3 of ckermit-4E-X286)
  29. X# do not concatenate these parts, unpack them in order with /bin/sh
  30. X# file ckermit continued
  31. X#
  32. Xif test ! -r _shar_seq_.tmp; then
  33. X    echo 'Please unpack part 1 first!'
  34. X    exit 1
  35. Xfi
  36. X(read Scheck
  37. X if test "$Scheck" != 3; then
  38. X    echo Please unpack part "$Scheck" next!
  39. X    exit 1
  40. X else
  41. X    exit 0
  42. X fi
  43. X) < _shar_seq_.tmp || exit 1
  44. Xif test ! -f _shar_wnt_.tmp; then
  45. X    echo 'x - still skipping ckermit'
  46. Xelse
  47. Xecho 'x - continuing file ckermit'
  48. Xsed 's/^X//' << 'SHAR_EOF' >> '_shar_tmp_.tmp' &&
  49. XXMFS/FB7%\+=DL@4G[G"R?]5K#0=OM8=)*PUO\6CR_W27>U=&E1FP,EBP=8B]M
  50. XXM<-'$C0*\I=STVZOK^1<VK=WMP1\:YQ`00=_Y==.Y2YB>7#Y.4`1I7+Y]W!ZK
  51. XXMZBA#!-]G(-\L"SDN"SD9ZP2NY*<+1Q&I31$_ZZ<2#9,["=R0,Z4BTLEKF],,
  52. XXMOJX9G0<($09X,#ICD#;9S+:O#0!,0+_L(M4D'1E6_2$+H2]:;;WHW16]^<CW
  53. XXM;<C"RRXJ!.-TH!;G:V/86Q/%,R-=0HT+X1^Y+`=LT$X@4`=U,`9<(P),X`+S
  54. XXM)`+L&RYI,!&0'`3L=KP*\>++DA!U:CRQ_&'E"<]N/<5<UY@H^ZI;H.<=VUA=
  55. XXM``)6.^@SOAQ:,:M^3@>]%N>272'[LQ6[8BDH:C^-M!%S\$+E=<HI2F-5K39`
  56. XXM(:,`@-:!L>C#$=@5KDI5LHO\^EICT-MLU+AN8-=48,BO&C.$FJFU"Y]J\9D0
  57. XXM"@)%\`1>#*U6=A'A@A0M0`9(N16#41A+X.JO6F]B<!-K8-=,\%HAE#-J4>NZ
  58. XXMW$BL^QAX4$YB`!)^(.P7WL0`DL?7+NO3A,3*5`:-Z@=)B\X/!+@@X`>>/>]`
  59. XXMX0>S>P(_<`+YKC-"FQ7KZP=;H:*.F^]U9KI+#@!A0!E6-M7]>?`?7>]OL`45
  60. XXM_P9P^C!;,3-W`A%+66_HKA5V'03#H:\*X2&1H19<[N7_3&/\JD:#61]^:DOQ
  61. XXMW(R4(^Y;`2*U5>K3!!)69O)^,`;[#`#CF>7FJ<X),1HAOUQA/1/OF.B0'1E$
  62. XXM.4T'TQYJWBW?8DKZ:2(LH!936[7U#@/$#)O5J09BEA'+8RT309=+2]\M#%^7
  63. XXMD8VYK,_M8=B/G>AJD:<C_1=S[M7^<09HD!"X:*)>\>DE;Q>SM?)P0)<%46U#
  64. XXMY&XM]$(?)H^V7KN-R5A_41,W;LBZC><)@*K'TP*)#J:-)?I;3P=;@#!P6NA)
  65. XXM?2_Q0_5R+OF5$O7GJ2"2-AQAH2_Q@]Y$>YM:[Y@7(C$8;02H?44GL+U1M@5S
  66. XXMO3Y=4-?M05]*D\-C*]6$;YD>8IX'DM0*P-UKM!P_.UL]^T2-9#E>H3/U)NJ\
  67. XXM9N"%G1LP:JD%`2#+7V<;H1;D#Q@S;,@H8*$4P<Y&Y"&[.R7G6!4Z'FDUP3M8
  68. XXMHO>MM"M("9]R4!=_H0!*<XY5H>.15A.\@R6FOBL:@2#5?_AW05#$7QL=`=>Y
  69. XXM"ADQ``+*#QDRT/QV+9$Q0)(@0>Q.H3/GND)`)M[7;M`JT&N6H0#\[OP@8-BQ
  70. XXM=*[)>/]@_3HR0)(@T4CX"JU-;`::WDJ[<D@QD-@*`/.\HQ4[H!&Y\3HRD-A<
  71. XXML=CK^SHQD-C&DQ&\@R5V<2D>34H)DVTKB["5&6[F"<R:3`=&_Q=0\9@@_2XC
  72. XXMG_5'#9];4<2^>(Y5,<>4"];L8FJZ[1C^W/[PN17<'^33W08),^NS^C9K;8F:
  73. XXM/QSX:C\BP3P;,5N[F3:^S[,^"[238]20H1:@O2OI7N2S"E]WL-:66!-%5+OX
  74. XXMNKP;4<J:#@*[.3$3D29J@=:*;MU=LBOIWAY(P,N)+2&[^12BR<)./UL',2+N
  75. XXM8RX``MJ[$D([D/<%?0(0G6O]+NSFJDV*[J>[^10.B=$IK)0;<]TGP5[/!5Z4
  76. XXM'AGXJO&>UB$=)\<B"Q0Q`!0RD.P@,`.0G,*1$0.)?2B!D:Z?OG`V:5SLB,B>
  77. XXMUB'+)>LC.APR,/$SH&MC0),@`1<RH19I<P:6X?ONA2[`\<N(7)Y!#/AGDF/3
  78. XXM1!-V/:&8"A'<'^33O=[9/AF5$?<T/!PR,/$S@-&YMD.M%.D$K1Y`<0?*A!%G
  79. XXMT-,;4<KZ/.,GT-F]UNX%@MKY;-`7D6,GXN]T$<3ON"M!-+:=3?L7D6,GDO?-
  80. XXM<0(\.SFZW6OF`N`@/@?^8=,[8-`L$T(/T6N[$D1;CL2<7>%JP3(AE"`@$:M_
  81. XXML6-5\5H+`M8L4[D[SJI#WQ<C2NH%@MKY;-!LZ^]A[?WO>!$YUM^)76;D>258
  82. XXMZ4,Z,XAJL4I":^$U,01K;`371I[9PC()C5\[8-!@JTQYT&N[$D3+VQRQ=!$Y
  83. XXMUM^0;%FS"K;*E`=%O16&ELIW(CS2W27K3<Q@JTQNVQ%A,/0G<`?*A!%G0.H&
  84. XXM71"]!LTGL"5FX.\%@MKYG"9F8-=`#-9;8@9`@;[^KR\=21>GJ!9=H16H2XVG
  85. XXMI.'ZTI%U3NOP2DIV#<1@K;D%4@:LU-ET<8K51?_SIC/%@[[^KR\=21?,@<2=
  86. XXM3?LPRA&[4D%:_[KZ0MC0>`*X;,JD7B"HG<\&71#^SDFV]O]SW+M8(MV83^GW
  87. XXMLA&EG`=1H1:3HVY;D>0^I#.&KC/L8G`):]=HG1"XK,M;8@:DON5_L6-,81EJ
  88. XXM(3-UH2_.`^(:@U_V(]F-4DZ;#W"?Q1(6.?3[8<C'S^D2L=:6J/G#@:_D7A/.
  89. XXMPSHH^F8!(CY=7F*E7BIJ<=D@P/U]K>Z'KA#315Z8NA,@T4CUQOTV`2(881](
  90. XXMKA46^Q*5&6[8#Y];867OZ<W!C!!&_Q=0\9@@_2ZR7M#'S^G4V._/D^T^U,)(
  91. XXM]O&[^12B>=D&?M'W7=`G`-&7C;D-'6>OI19'#9]*K=NI/3G!@R;U-D.^Y2W*
  92. XXME.,&;M!X4-<$,P2XA8A7`#'H,D#>1&12RZ>[J2E1W1QJ>P)CD/YL#<?<W,*;
  93. XXM329&C8\`,$``DHNICB6VABX):QM+>ROR"Q46@TRE3*A)YDU$5IZ;C8\`@$RE
  94. XXMK.EL],+LC\J66!.^;,@AY!_ZW?6RNF,0P2[#3-CCYKH;XL\PROU!/MV$:S@9
  95. XXM@RXE"6WT>]'[@=>6S>E[[:5]#:T;G1#D31>(CR;"B]L#)1#JPZUCN6_2`P7*
  96. XXMY$HA!`!)8"DOU,+#7#PPJK9JG_6K.N]LM*F2IK)8<@(A<`)!@TRE#!+`K,D)
  97. XXML9L3,Q'EB=:*;MU=LBO7O@,^LE&/]W6OG"!&X;,H*(-U=8ALYUM^Y7?S8
  98. XXMR,)./UOO:<C0[:6'#&%H#@#(5,INNQ$18VN3SB[`K,D)D2WNTR@]K61#!DX`
  99. XXM@$RE#!(8SA8:/@8<CB9D3:R+[#P@KC$I3064&QG<;^"/XL^F[J&'9-?<;^`F
  100. XXM:>L*`)_K34U>,1S$[A0ZTQ>46P9K;8E&O.765"H,Z48.(3S98B&SM90!H^&;
  101. XXMDC`3*B&[^12BF0>XRXV`A@)/D`(BH`*MH`*NH`+;H`)%L`*?L`)-P`)%T`+N
  102. XXMT`+OT`(%X`)*X`*%X`*QX`+48+4OD`8O$`LO0`\O8`,PX`<P<`PP\``Q4`4Q
  103. XXMP`DQP`LQ\`TQ8`(R<`(RL`NQ,0,Y,`,30`.70`/=0`,C4`-H4`.44`.54`/=
  104. XXM4`,G8`-S8`.+8`.,L%,V\`\V0`0W\`8W0`LWP`\W,`,XT`<X4`PXH``Y<`4Y
  105. XXMP`DY0`TY4`TYT`$Z@`8Z,`LZH`\Z8`,[X`2I?B:Y\1?45NIFYA0GH5:6H>,G
  106. XXMI"_ZGQ"F%@8JBR7HO]:6>#``0`2ZJR\G<+(F<@)PO6/?TFN[$D0Y?F6(;$IF
  107. XXML_9"_1!FT&N[$D2WA9;2W25%H2X3H1'!+Q8ZLS[,41\)`\=C\!8`$@3)G`1)
  108. XXM``*[.3'QN17+V?")1L]Z_-_H<@(G:R+^7B"HG<^A@0,*@`).7>QLT`)<L*Y4
  109. XXMF<)*F1M@(18MAA`=`A'%TTCX:M=#P!Q%._.SFKEN\`*9BQ6]%F\G8"`!4]<`
  110. XXM8""UD2`@D;EN\`*9BQ4)`\=C\!8`$@3)G`1)``*[.3'QN15+;S^RJO&1V[FY
  111. XXM.V.-P;B3J4P6"0"X54?:A%QV[3NUD2!Z&[FEHTWT@;S*N)`>-[4``,?NX]6D
  112. XXM5)X\Z[-`.SF,VQRR:M>^4QL)`A*B",EV3VNY!J.,JTOPB5FXQ9Z-#0+<KQ;G
  113. XXM6!61P2XG$&V]EK`[8-"YIM9T<8ILE&O<;S^7?<C9`LF&#:-/JTU^>LC90K@3
  114. XXM3Y/FF;!M<.Q.C"5HF6O%(V1K=):C:(DU(22R6O).(;,:W\(%E#98DBT2T;'5
  115. XXM2[56.SGUIDUY,!&.?,C9T@8ID#"SCI9%5+OX:C]WX!2UH]2*1L0)<M'[T1RR
  116. XXM:IX)^Z+-(;\>+Q=`H?]5EA`)VP;'[L184KU4ZP*NKDUY,!&/")\KDFM"JTI`
  117. XXM;NDO9)[R^\26B.P3#[$)`A(G:R()D\)*F1L):QLL++\Y:Q^7W6)/O4Z2:M=.
  118. XXML&OE5#P',2(V*?65:1M%!`"-5,3E5#SR"Q'ZBB8G4$!I@R79(A$F@L/^G+!M
  119. XXM8-=-4))W3`=9_A)[<14D1C$UD;#KO>5(?`+:E`<3T6N2O6!((>L%C=8)D;"V
  120. XXMT>_";J[:5!$T?"FYD;#K3?N73AF6`6?A?EMH*=U=T@8)`P7*E+?V(ZO_C2XA
  121. XXMY!_ZW6)/O4[8&&_.`^(:HQ6#HBWVSQ76"12TO`9N@^_$;"`!8]>^4QL)`A(&
  122. XXM$C`)HVF.'O/Z4ME!/!S2W26$6R"HG<\&#=U>Z@-U[2MB09*MXQ:1;C^1J3DG
  123. XXM76\SY%O>HDS6C5TGH5:6$1GDCRZ3D1<NYK-`.SE/*Y/EQ,+6JQ7Z'10@\;0R
  124. XXM.08T>>::KS-D3:R"&NJYIM;J;_6M4^>H[&*=L[0\$=HSK1H_<;4Q\!-76P,_
  125. XXM`0(SH+5`80-:"Q18J[5`$0,XH+5`(0,TH+69@0-:"Q0Y8`-:FS!3T,1F`!*@
  126. XXMO2O7KO$!TN$+Y]V#DFUDT`)/8`8M``77G1`H$`3)G`1)``*[.3%E\(A0<-UT
  127. XXMT`+5OBDO@P(QH+5B#\T[;V$```4T@4&PBDFVLT8Y@#70O/./"`4TT0)#0,]Z
  128. XXM#*M!D,Q)D`0@L)L34P86EM%W<ADM\`1FT`)0<-T)@0)!D,Q)D`0@L)L34P:/
  129. XXM&&]4$%!H@@(Y@#5_06V74G".8F$,G_4R.08T>>8UL?O9,@9O`2"ZB%\),P5-
  130. XXM;`8@`=J[<NT:+](=OG#>/2C91@8M\`1FT`)0<-T)@0)!D,Q)D`0@L)L34P:/
  131. XXM"`7730<M4.V;\C(HD+5:2\P[;V$```4T@4&PBDFVLT8Y@#70O/./"`4TT0)#
  132. XXM0,]Z#*M!D,Q)D`0@L)L34P86EM%W<ADM\`1FT`)0<-T)@0)!D,Q)D`0@L)L3
  133. XXM4P:/&&]4$%!H@@(Y@#5_06V74G".8F$,G_4R.08T>>8UL?O9,@9O`2"ZB%\)
  134. XXM,Z$2LIM/(9IY@+O<2)4D'S&7#0+<W]?FA%N(:!<E#S$HI&1#!DX)0_(1<]D@
  135. XXMP/U]O;R$W,T3Z4HUX:VLFC`D'S&7#0+<W]?V(]GN`VY"QDXN++-U;LB"?4C?
  136. XXMFC`D'S&7#0+<W]?V(Q%9_]C+`1PX5K08DA"2[3[9<M$9_?`&;C^6S>E4OF()
  137. XXMQRYV<2D>3=%>4@<HJ@!W(2Z`G]><OM=>VM<)0_("9\B7#0+<W]?V(Q%9_]C!
  138. XXMLR[!GT(1HS)BEC`D+W"&?-D@P/U];3\T;)Z"?4C?&FX@H&Y;D>0^%.L`0/("
  139. XXM9\B7#0+<W]?V@V1GAFMK_B6:[]_07#SUG]O%/T0*$#QH`J,R.08T>>8U(:MR
  140. XXMD#"ZDY7TH2]Y@+O<2)4^S>``0.&[4IZQC2ZM_6CO+;P`0.&[4I[=2[]2QM\+
  141. XXM+KP`0.&[4I[\';3T*V4@OCD,#@`4OBMUGM-!2[]2MI@D`_SE%-+9LA`-T1'0
  142. XXM[(KSDCDM2[XU?D;'9-O-"P(U;A_B@9@L((I`D1<NYK-`^S1?J4RN=.V*P@3O
  143. XXM$B&BZ#;J$141\B9`D;`1`@#11AN<+A%'><C9T@;'[L1:$2&'"0)"8!<S[28!
  144. XXML=/*E+<1`@#:4C</%A"T[$<J(V8`8"`?%Q_/R9E'F;LSUN*ZP;EF`!0`L&/?
  145. XXM`A0``!9B$2$`D+EN\`*9BQ4`8"`?AS*;*[G:A%P1XGCS8B`!HQ;X[1_Z;4H]
  146. XXMF\LE%B'W.2T7`HV:MF"=!@7*Y$K7'B'M<4&FJC[%6DK4^T&7VQ7\,N1!0\54
  147. XXM$%`]$B'"6@(Q$`-D4`(Y$!`JD!9?21,8%"'"6@(Q$`-D4`(YL);+*@3L%3%#
  148. XXM`%X14@(V$)Y0\(]#0,]ZK`,E$`,Q0`8ED`-KN:QP//<1,JPE8`/A"077G1!3
  149. XXM<">7$2$E$`,Q0`8ED`-KN:Q-P.(@H#YF/A$14@(V$)Y0<-T)D6V%TQXE$`,Q
  150. XXM0`8ED`-KN:PX<!<M(`1*DV!JY1IP70)C<`)I\977G1#5OBEWH0,E$`,Q$!`J
  151. XXMH!J.AP-KB0(Y0`-!(ZSLJC[J`1P)IE:N$2$&70)C<`)I`0+5OBDOPP1O(3IN
  152. XXM$@,Q0`8ED`/SPL]D`MJ[<NTT+9$@0.&1'B'M01)ND&,GXG@M@+5[PC(AE&PE
  153. XXMT`)8RSWM`<>WC2XU?D:F*I4`8"`?1\42&:(C&B&/"@!@JTQ%5@(M@+5[PK:.
  154. XXMUP)8RSWM`077G1`U?D;+"@`&\G%4+)$@0%^.*RBZ\48ET`)8NR=;DITET`)8
  155. XXMRSWMH37U7>-G-*P`8"`?1\42*4`;4<JN"4=8X7@M@+5[\D8ET`)8RSWWG=/8
  156. XXM6.-GU!X`8"`?]]H2"0)"D`?4.`5IH`?N[B8!`10NJ6AE&1D2*4`;41D+46(1
  157. XXM`@#(M37&04#I"BH(?3I'"0(N&?U+Q)9IX6!VK,@9`>)"-#FCNIX=&2$E0%[K
  158. XXM>2L=/[9+G]T14@+DM9X\Z[-`.SE/RRX@$"$E0%[KR;,^"[23\[1H$B$E0%[K
  159. XXM24T-G_ENL2NT&R'W^1=CL)YJE15-$V4HP;0V$=JF&B$E0%[KJ58U>>9&!!*T
  160. XXM'2$E0%YN4@+KV;VD.;T$&R'WF>"!\8CWN5B*/&]RVUW/!5Z.O.69WQX1\HJ+
  161. XXM0Y:8CXVT&R$`D`<3`0);4`)C$*<`8"#KB0,O,RT)T>VN@2["&B$`D`<3`0);
  162. XXM4`)C$*<`8"`S3C#L6Q-+Z64/2T7TK,?9/:SL47$^"[23\[3LXAP:ZV(^"[23
  163. XXM\[1H,FX+]YXY/40V@H_L<2L=/[9+G]W.47$^"[23\[3LTAZFZ6(^"[23\[1H
  164. XXMXARFE,MPD/ENL2NP^A?4AJW.84I8L4[/BA),:Q.A+:SLH58U>>9&!!+NK15F
  165. XXM30>MVA[BH3+*-)P=$0;LH3(+H0?.X1;^@1#L(2#_Z!S6C8RSQ1Y_T6G.83AT
  166. XXMP`:SZQRF)`:SVQ[L8=MQ8)<[:B+!RAXR1`>SZQPV82%VR1[ZV/!UD"EPX,QU
  167. XXMP!YS<`?.7`?L<0<+H0>OI#+*-)P=$0;L(4,+H0?.81-L`1?.`3-<1A.*`S-<
  168. XXM1A-W9$J=UAZF20=L,+O.H1"S^ZCL8=NSVQ[L8=MQ8)<[:B+!RAXR1`>SZQPV
  169. XXM82%V:9H-O_L[:A?9S1[ZV/!UD"EPX,QUP!YS<`?.7`?L<0<+H0>OI!HRM!!Z
  170. XXM4+TE<SS9"P`Q``"]HEL[]BT`P+G9B<NF#`"=;10C"@!WH$P849BAOR5T>]T5
  171. XXMP5N=2IJ=`C)DL##TK,>[01,8-#UW<ADML"5T>]T5P1:[TB,`8"`?E[EN\`*9
  172. XXMBQ4`<"7?,A`6LYP`T+D`8"`?E[E8`0"9NR(7D6,G`@`L$T+)!K;*5&1L"P#:
  173. XXM4C>T[$<&\G$/%A`J(V9PA!5PM"(IM$(`@%Q;`P#A+A$+H0=@@C"6-:NYUEB]
  174. XXM!LUH7=;.ZA6+#CD201.0G,(US,O&4V6C3LPG`-&YAOQE4-20;AF1<=J0G$(K
  175. XXM1&E=/9&NE-&PIK<>1B30QFRY]K0`$`,"40,`X`2I?B:Y\1?4-AQ7\K$Z?B>7
  176. XXM@2ZXFE@`@`590`16'`014F0[]BW'-),U$\W)G`1)\)_QN17+V?")1L]Z+!`2
  177. XXM:=U=LBLA1!)ND&,G`@#,P4K@'3+-`QF=;136:Q0%O93^DQK.$^Y4G@9Z$!DH
  178. XXM,!K0C`-!\Y.HS!Q%._.1,1KQA@-J\0,@DNCEY#R@O2LAI!:9ZP8OD+E8(1`&
  179. XXM\G'&H60F8A0%O90)2[A)YDTP,Q,2;B`?9R`?5V#<[P,`H&G3W0:X9N!![N@`
  180. XXM$`,P``!-P.)O426OGC83`9#6C5T5$>X2L1!Z`"8`D!KA+A$+H0?QB5E)H]\M
  181. XXM]M3K-$3SB,K,4;0S'QFC$6\XH!90H$RNM+(L?!`=OG#>#0!0H$RNM+(LW",=
  182. XXMOG#>+1`QH%MP/`9O`2!!D,Q)D`3_&9];86HAY!_TBBLY``,`T`0L_A954B:[
  183. XXM6)Y+[]SUQEOC5C+'$Q6=2IHOX]UL%,L(-R\Q``!P/`9O`2!!D,Q)D`3_&9];
  184. XXMP5NH>B=QO_0```.^(A8DV3K6;9WSK$SU_"C0?!`=OG#>#0`P``!P/`9O`2!!
  185. XXMD,Q)D`3_&9]*W>$+!S(UL?0`4`,`X)(A9&ILL2OKHFV[F10*,`7J<6/63L1V
  186. XXMZ@9&WT@>Q](*I_7S"B!"JQ990&OAGQ!H#5OOTFM7\K&18>EU@"YG.1Q%K!9"
  187. XXML+0\$=H:CY-ALAB73AF6`6=/*Y,8.B^B&"'WB1),JQ83RLBUC"YY@+O<"`#"
  188. XXM(`5))Q#$(`5+)Q#&(`5')Q#((`7CT0Q2D'0"(0U2<'0"H0U2,![@(`5))Q#E
  189. XXM(`5+)Q!"UPY20'0"L0]2P(`"D0!3,(0"<0%3$(0"\0%3\(,"\0)30'<"$1XW
  190. XXM,`7CP0-3D'0"L73(#'0"H013X(`"T013<'<"$053<*54,`7G<'0`D`53,(0"
  191. XXMX053\(,"`71B,`5))Q!L,`7C00=3D'0"L0=3,!Z`H#7B40A34!0"H0A3,!Z/
  192. XXM\&KB,0E34%H`0'29,`7CT0E3D'0"`0I3,!ZH,`5))Q"M,`7C\48I\UIZ1(RO
  193. XXM)D)ZZR::S_-2S^)O424(.:%A'03)G`1)T&((T2$0\3B(Z(J=J3[<>B]*-F1B
  194. XXM2TH`@`5:,`170`018A24VY1D<CS#P;KM2#%&SR['S^G4.`:]<0(^.@>]X1C^
  195. XXM?">5FT!0$#]S`*$1$B9?&3]ST.M+>=E)YDU$1L50$#]S`*$1PAX@8RD0*AX4
  196. XXMOBOE>=F']*W+2\A@0MK<>B]*-F1B:]1D(I-C0),_F]IO5!Z5N&\+Q\*7W?)%
  197. XXM0=K<VI37"AK%,VPF$6XYCMXFD=)YT:(=FNPYGF3>1&2ME$GBH3[<VI1D(I-C
  198. XXM0),_F]IO1-K<&AFRNA7V2LP%E#:3;O"*`P"ZDY7TH2]Y@+O<F)!CU,0UF=J3
  199. XXMLZ=UH&3S(@=2DA[DT0,^X!Q`,05IH`?N[B;HR!Y;\`1+H"2JL04IY$QDH"2J
  200. XXML04FP2\D%!5*DM%EA"X`X$%M+A.`L9E"@D3YBOA*BR)W(IG#X4%2&2$E@([E
  201. XXM(8H14@+HZ$%M+A.`L9E"@D3YBOA*6Q-O(`9J@+(>-!XIO#;_!JNB"*XO;?/A
  202. XXM/BB?;`3FU$G4=$A`X<EJS,928#^2M7#`K,D)P5MYH<9L+`3FU$G4I+0?B<9J
  203. XXMS,9JSL(8+IG#(1.5<1D1HAH641"%0A9JGC5W(IG#(1.5<1F*XCPT'"$``+;*
  204. XXM5&1LBT>YD^HI#63B?>U>V5W/!5Z+0Y:8/T2J@0-W`:K=+1/>_CY>(`3PF#^>
  205. XXMA"Y"H(^S119&`(_YXTGH(I&ZX052`(_JTUCHHAI;D`0-81E1$>@`0`1%(`15
  206. XXM<`0Q[^.JPVZ;,J-N.09JT0.O"`!$4`1"4`5'$/,^KCKLMBEJL06B&*>45@1"
  207. XXM4`5'$/,^KCKLMBEJL06BJ".O"`!$4`1"4`5'$/,^KCKLMBDSV@.O"`!$4`1"
  208. XXM4`5'$/,^KCKLMBDSN@6B&*<`0`1%(`15<`0Q[^.JPVZ;,J-;((HZ\HK$^)V]
  209. XXMJ?'MJ/'(W;R;Z8KS(I(M4./V(3[H(ESLMBDSZB;D!9%N0EYJ(9(M4./V(3[H
  210. XXM(ESLMBEJL06B&*<"(9(M4./V(3[H(ESLMBEJL06B&.@E0%YJ(9(M4./V(3[H
  211. XXM(ESLMBDS&B$E0%YJ(9(M4./V(3[H(ESLMBDS"I$BV0(U;A_B@R["Q6Z;,J/Q
  212. XXM&"$E0%X(^9V]J?'MJ/$1(;R;Z8KDI1@=YI(AU!1>+6%3DP./*`,Y0!JF06`"
  213. XXM@0=C:@<"$>$*XZD+!ZILM*D,XJYT@?AH@JK_ZJ_$7*T``"(BHF2/Z8S/9:=N
  214. XXM8/2-A*]A;7`)*Q`B\`46T:(LTS2Z+[*CV*(LTS2Z+[*E91$MRC)-H_LB.XHM
  215. XXMRC)-H_LB.XHMRC)-H_LBNR?Q\9R0?0:!FA%6$1@Y:Q]AH+)8@JH*\Q*6_O^`
  216. XXM`:\LC*H*,]//4X^M8ZM[$A_/"3.NT;A*F1N<7>$33ZN+KC.H.CTGI"^Z&D+^
  217. XXMH=\%LI`RTXP6T:(LTS2Z+[)[$A_/"=EG$*@9816!D;/V$08JBR75^A*6_O^`
  218. XXM`:\L7*T`$!_/"=EG$*@9816!D;/V$08JBR7N^A*6CBZD%-;N"@#Q\9R0?0:!
  219. XXMFA%6$1@Y:Q]AH+)8TJDDL6@^"[23\[39XCY>34HP8^GO@RW:\@);+1#1!@#Q
  220. XXM\9R0?0:!FA%6$1@Y6YC^<8WZ@A),"P`@<NF481EPAA),:Q.A#0#Q\9R0?0:!
  221. XXMFA%6$1@Y6YC^<8TQ39J=LAB73AF6`6?=2YJ=XM,,#@#Q\9R0?0:!FA%6$1@Y
  222. XXM6YC^<8WZ@K<?`0#Q\9S6/8U%%A_/"=EG$*@(0=#,<M!\O=!%O14VC!C\W!$/
  223. XXM$2%&.3\=/RB)D9'<6`2?QHL`L'LZ%^Z(-*0K31)/O4X#T1O&X<3&H61#!DX`
  224. XXML#[,`0"G!&RA8RUV\UH`8,,`(+P`P*<583'(7S&<+A'3,SUN;B'3DU@<-SVO
  225. XXM)5YCH3)B-CUWPA8:/@9[<B?(!0`HP;0`T%UKL##@91S49,K&,1F@"P"AOR5T
  226. XXM>]T5L9P-7P8+0\]Z#`#^`Q9BL3`%4>Q)@5MUI$W(!0#HN\UR#`!"^Q*5V0;'
  227. XXM[L0IS5N=2IJ=`C)DL##TK,>[01,8M!O*E+?--MFTH<CS1ANO!4[3DU@RR2`8
  228. XXM?ADML"5T>]T5$4+^H=]&$5`],A"]81R$#"9"QDX`8,,`P!P444-B9A0C"@!G
  229. XXM9ARVW;RRO1O7?2'3H^!O!.)"]#2[H4RN=.T`D&/]O2?0[:4^$"V@@M"GPR*A
  230. XXMLR&/Y@((?3HL$CH;\F@`$$NALR&/!@"K(`:2)Q"M(`8J`'RO(`;C,0MB('BU
  231. XXM(`9+)Q"[(`9')Q##(`9$)Q#'(`8H(![,(`85*!#6(`97N@UB,($"`0YB`($"
  232. XXM<0YBX(`"L0YBP(`"`0]B\(,"00]BX(0"D0]B<())MP]B<((",0!CD(<"H0!C
  233. XXMH'=)QP!C0%E".`9Z)Q`8,`9T)Q`?,`:;"``C4&?B@0)CL'L"X0)CT'P"D0-C
  234. XXMP'X"H7<^,`9WEW1#,`9))Q!/,`9')Q!5,`9")Q!<,`9$EW1J,`;A(1![,`9`
  235. XXM)Q"`,`9A(Q"-,`97>@EC,($"(0ICT&H"<0ICL(D`0`MCP(!))PQC,(1)!PUC
  236. XXM$(1)APUC<(0"\0UCH(0"80YU)A[N,`9Y*!#T,`:2)Q#Y,`9W)Q#_,`8_F'0/
  237. XXM0`:[)Q`80`9TEW1.F$Y))Q`D0`9+)Q`K0`9')Q`U0`9")Q`Z0`9$)Q`_0`:M
  238. XXM)A!%0`8_*!!*0`9!*!`5Z`0N(1!80`9))Q!@0`9+)Q!H0`9')Q!"Q[3C`0AD
  239. XXMD'0"(8HLH)(I'!DK#,TV3#`AY!_Z[;XB1$+]1C!T$-#4E!>6".6JPV[ZPL(F
  240. XXMH17Z33E2FM)Y88E2D1Z=JBW49#C3V9H`P/T&[FD=HM1*JQ(L`;F&ELH]QOT&
  241. XXM[FD=(@>A6;G.$T+^0:^/3&FVW;P@4./V,031Y!*9T[+D6^/V,031%!!O(V>(
  242. XXMH1990&O:%&7%@]:P]2XX3"(4<:4"$9C[DQL\N\K,1N&[4IX&)V3LE.PEFC:3
  243. XXM;O"*`\3?O^;F%$UAD@6T%OY1C=?>_X[/&R9P?-OH$M)W$#\_QC]J\0-0<-VP
  244. XXM1;]T$3\_QC]J\0-:4]\A?0?Q\V/\HQ8BF=-!2[]T$3\_QC\(F9_`7TXAG2T+
  245. XXMT1`=`<VN2%X$XP2ICB7%TTCR^TD),T#>1&0O$)--7).I_489^99-$-II`R#%
  246. XXMTTCKPQP,HA990&O:%&7%@]:P]2XX3"(4<:5ID06TIDU15CQH#5OO@L,D0A$$
  247. XXM0^&[4IZ7?4C?FNPEFC:3;O`K<B>5ZSS',QRLVXX48_3L$M>O=0)&0;EE4*VX
  248. XXM*P,+)[1&0;E-22;',QRLVXX48_3L$M>O=0*JH3[<VI1D(I-C0),_F]H%$2$"
  249. XXM0>&[4IZ7?4C?"CYZJ5A%Y$G9NYXU+B0004K0&FD:D1"\HQ41(A`U+B1,D3NN
  250. XXMI%A%Y$G9JQ8V7&#<;^`"`<3`43S"&R990&OA[Q=-;`8@L1S`@9;%TTC"^R6=
  251. XXM&9C[DQM'KC-)_N;B0>&[LN78NQ7>_XZX&FE)#!G)[LE2`)=;4B?Y,::]H@!9
  252. XXM0&O:%&7%@]:P]2XX3"(403#JPZV1P?U];>!AD@6T%OY^T<1F0*@&KO%YS>E4
  253. XXMKA46^TO7"AJXFE@_H.8QV<0UF=J3@Y9[6@=*UID7%"'G*A`4OBODKOD)H:\9
  254. XXM?4+I"3\S+1!0H$RN%$)AD@6T%OY^T<1F0*C6W26[LK*X^EH$H[9JG_7#7#R&
  255. XXMELH2$2U@6RUXT0*?LC"[H4RN=.T"H0#WM5R22M,J"9$0>9`0&8\:;Y3QJ/%&
  256. XXM"9$'>9#0.*%![./0PQQW@#!J(9*4VY0[&3`(!^6JDXU;D^4$`]U>:N!2]@-J
  257. XXM'I--7).I/3EHN:=UH&3S4HS'F(P%LI`R8_/L,LQYY$IJ83'`5#]1;B03*B&[
  258. XXM^12BR8U.#=6>;(DUP<*#"!16(&$P$`.?<;58HS5<@P->\WIM\&HBI+<@\-CA
  259. XXMGQ!H#5OO@L,D0A%J\6HBI+<@\-CAGQ!H[1?J$14X3"(4H1990'"F]&]`)MXK
  260. XXMBY:Z$P3)G`1)P)EJ\6HBI+<>1B2;1)5.#=7H<A<CQ)Y06Q-OX@*)L1^&O)P-
  261. XXMGVCTK,>)'8^P^B8IX`*)L1\%#:/+V?")1L]Z7/MB`>X@H<S%HZT!QP*)`4<Z
  262. XXM]M(V'^X@@(FXZD-<`9\;;ZA/XP*)H5A:4]_"^R50WARBZ`(ID!@9#6MZZV%$
  263. XXM0FUV@8T7X493$D+^H=]J\6HBI+>>?&G49A?8R+,^"[23([1J,6TW08V?*='I
  264. XXMJO%^M`5"$-S`4>-"`A%3L&(T%J>(H0!D]JI+#P!;(`3!#1PU+B00,04K1F-Q
  265. XXMBA@*4(F+YK-`^S1)ID(%`=6ZD1ADIJU+CQ@*H,S#-&B_7!!0S=MD.RB)T1YB
  266. XXMCP)ZH!5O`!JX^O!4\BV(0=Q"0.XU46_+;AB(0=Q(8#^X=0:3,?'$A,0G*[*(
  267. XXM0=Q3H/&'(IE[DACML<+0;,.(0<7+V?")1L]Z'!%UX=6X"MB&O)P-GVCTK,<N
  268. XXMD!B)43262`8^(!!?\`:`\`:<\`:R\`;7\`;H\`;W\`8S``>?7`(,<P(E,`8G
  269. XXMH!:)@1AJD1A.#=7E=!<CI!MNHQ[EA#)`<9_3<B%'J1O:4C</%A`J(V8OH4Q^
  270. XXM9-W36&1`(;RX73S'Y,2>;(G(GH@RX`(PT%\Y`!HR@#622&!"(`90``=4,!>K
  271. XXMD04.(`4.*!X.D&\G((HGX(`>$P!+)QY4Z3%))QZBR'T]<`4`L'3B(8J[IW,-
  272. XXMX(#L1P0.."A4((H.R`(`$`14X(#B$014($#QZ("(X8`^``!KX("#(HH.N`1^
  273. XXM5``.J`(`0`0.^`-2Z8#D(8H.R`(`$`14,`4RX!,QX(!/L`0.*!!!0`540`2B
  274. XXMZ(`ZUP`-X(#L)Q`\L`2BV``^<)2(X8!#0`13``(^(!X\D&]-((H-X`/E(8H.
  275. XXM."$W,`-:.Q#](<=^=!$$H97'T1GNRC#'$0-:"_II`SO'D;4P`/II`SM"5A%R
  276. XXMMCQWPK,`H$UY`#L/DC:HE1(/L9LCPC`@(FIBL2*VEMX'LN$M(`-8&P8`4/X2
  277. XXMD12A-FHK0@4!U2,`X)(A-$(6`@`.EBU%X9)VX<1IH`=@@@MP<(3:T*/A``?(
  278. XXM``#I``?J``?K``?L``?(``!W5P]PT&KWT*/Z``?[``?\``?]T*.;&`>M)@!Q
  279. XXM(!`$$`<%$`<&$`<'$`<"T7@+$`>MY@!Q(!`0$`<1$`<2$`<3$`?LL81Q<'09
  280. XXM$`?T$``<$`<>$`<A$`<C$`<"P7VPO'0J$`<"X0)Q\`)Q``-Q$`-Q(!"]H@-Q
  281. XXM(!`[$`<L$``^$`=`$`=#$`=%$`<"P7U)$`=$QP1QT"M/$`=1$`=4$`=6$`<"
  282. XXMT7A:$`<"L05Q(!!<$`==$`=>$`=?$`<"T7AC$`=+UT("X09V%0=S$`=T$`<"
  283. XXM<81\$`=$I^\L$`""$`>$$`>%$`>&$`<"P7V-$`=+]PAQ<(22$`>8$`>9$`>:
  284. XXM$`<"T7BC$`<"00IQ(!"E$`>F$`>G$`>H$`<"X04B)`>&(`>:(`>N(`?"(`?6
  285. XXM(`?J(`?^(`<2,`<F,--SX`1SP`IQX(`"00MQD'0"T0MQ`($"40QQL'0"T0QQ
  286. XXM<'0"H0UQ('0"<0YQ,![N$`=$)Q#Z$`?A$4-`)Q`'(`<5*!`2(`=A(Q`:(`=7
  287. XXMJ@)R,($"P8`Q(`<Y(`=!(`=+(`=10$.O)D)Z"P*/'?X)@=8)D;!M@,,D0A%J
  288. XXM\6HBI+<@\-CAGQ!H#5OO@L,D0A%J\6HBI+<@\-CAGQ!H[1?J$14X3"(4H1:O
  289. XXM)D)ZZV%$LDE4.4"\Z>-H,$+L";4U\2:HOD?QZ`*)L1^&S!:[@B8LK&AEB2Z_
  290. XXMG"")[28H4MJEXP*)L1\%#:,FP2\D!&3BO;+#U$G49)[RF[-5FQ@9#6MZZ\F7
  291. XXMAEOV,1E!`1)"JQ:O)D)ZZ\F71FUV@8T\Z[-`.SE".Z,24S_>/R6X108YFT'T
  292. XXM(Q,ND!@`H(XG2[XQ`V[ZNOGT9C/7#.4!Y0*)`0`#Q)O(JVTC9"&/G!CC!!DU
  293. XXM@0+-)P(IX`*)X6.Z$SILP9MZ(/65V08ND!@`H(Y.#=5#!``.$`0`X`!5<+4.
  294. XXM:,UW8EP!$:7O!`#-5!!0S2!%\&GC4RJ0LR#CTQSR"Q&W\G%3H!Y1,2CE`P),
  295. XXMD`0##@#D$^!.,.!IG!<"3N!4``#DX\E!(`52D`1%(`5$?QA"4`53D`4`0#X@
  296. XXM(`5)X`1'0/1.``),D`0#'CM!D`1,4`3Y-@1!P`1,0/1.P`1),."[)P15,`59
  297. XXM``!$4!CY!@6_,N``D`1.D`14D`1!0`5)X`1'``!"4`53D`5Y$01,P`0@8`1!
  298. XXMD`1,4`25IA=9KVAE^<@'D!@1Y.;97(G[%AA`H8@N``/]]1D@,`/1W+P;!@"V
  299. XXM8`>MENCHPO>R#R9VLY!*@P)8O]^1#QB-$C3(?V.1#QB-$B&=%?$881\F?P8'
  300. XXMT@)*0Q#9,CTGQ&V1#QA>/6[`#@![\.M4T`<`L.R&`0![L.R&T0<1!&MZ"P*/
  301. XXM'?X)@=:P]2XX3"(4H1:O)D)Z"P*/'?X)@=9^H1Y1@<,D0A%J\6HBI+<>1B2;
  302. XXM1)5%\.VI++-MKN2W-4+L";4U\28ND!@9[>;9+#Z"$H^)D=%NGLWB(RBZ\6HB
  303. XXMI+>>?&G49A?8R+,^"[23([1J,05NGLV7_BJ6LF-LX`*)$4%NGLV7_BJ6LF-L
  304. XXMD#"O)D)ZV^9*+DN)$4%NGLW!1A8EP#`E<$=3<"?>]00Y!A9B<:6(2[TH@`(H
  305. XXM@`+V;:I(``$0``$0``$0``$0``$0``$0``$0``&$0`B$0`B$0`B$0`B$0`@0
  306. XXM``$0``$0``$0$`B!$`B!$`B!$``!$``!$``!$``!$``!$``!$``!$``!$``!
  307. XXM$``!``$0``$0``$0(`B"(`B"(`B"(``"(``"(``"(``"(``"(``"(``"(``"
  308. XXM(``"(``"``$0``$0X!R!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$S@`0`NM
  309. XXM8`JS4!Y)5QX"$`#.$`L"X0RQ8`!+%SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!
  310. XXM$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!
  311. XXM$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB!$SB"L`?C80VQ$#B!$SB!$SB!
  312. XXM$SB!$SB!$SB!$SB!$SB!4Q[8HBTOL-4"(7EZ)WF-)WF-)WF2UWB2UWB2%S@`
  313. XXM<`1-0`6!\ZB!<P1-0`7L"@`JP`<TP`>!$SB!`P##<``/T&MZ!P!@(!X@H'?1
  314. XXMDG0`@`L'(`P'``)Z!P!CP1YZ%RU)!P"W<`"W<``@H'<`P$&JH7?1DG0`8`L'
  315. XXM8`L'``)Z!P!$%W(@H'<`T`1)!P"O<`"U<``@H'<`,!;LH7?1DG0`0`2Z[&`Z
  316. XXMH[4@H+4ZH+4ZH+57FP-:JQ93`"(.Y@94\$)7$!6S7@?]G`93T!$``&!&8-M-
  317. XXMH$Q!,&Q-8,I*`")*X"U!T+Q:`P=/8"*^8P=PC#J!%CCD83&\`6-N(&IBH3-L
  318. XXM8S$1LB2!$SB!$SB!$SCBL3#2%2U@6RW7DBW;$CBJ(1"&M0*J`0`P@+4S0`,Z
  319. XXM=0,XD`-&-01$4`1&```P@+4S0`,Z=0,XD`/!,P;$"0`PP)4P\&<H@/5L0%GV
  320. XXM/:P"H;5:J[5:J[5:J[5:J[5:VUG1PNHO`#*6TAOD83%!,`54``!!0`14,&Y3
  321. XXM0`7C1@14D!=30`5Y0014``!-,`54``!-0`14``!0,`54``!00`14``!*,`54
  322. XXM``!'T`14```KH#``<`1-0`5N*2DE``,RX!+P```"X`<&X`<L$``*X`<.X`=H
  323. XXM$``2X`<6X`>D$``:X`<>X`?@$``BX`<FX`?DT`\JX`?CX0)^(!`A-QX+(UW1
  324. XXM`K;5@A=%\&E;`0,`,*%<06HIK8Z7_H[.`\U"QDX`H(Z7_HZ272E[XI(A-$(6
  325. XXM<F,KEG!"\BT`D`0O\`2>UB'C`SU=/EO9XCY>#<TT00:8#P!!<*8N'-6JPVZ;
  326. XXM,F[?7F>Z#1QL8S%"\(]YE.HIK8YS<HR:#`#J"!>1W2&50M\`,*'L&Q>`WV+0
  327. XXM`@76V-_96)`!(03_2!-D@/D`(`3L%3'9XCY>O:=UH&0!`<?NX]56\4ZX,R6G
  328. XXM1!%[,@0=8BG'WM71>Q!^I(Z7_H[9XCZ-`@`3VL)"QDX`D`1^FF3>Q&3?V9N0
  329. XXM?0:!BA"X,R5W(CQ=\14*LA^J0Y*M@VD="0`3VL)+GXWNTRC[`>3.8Q7OA#M3
  330. XXM(ERT-:9@HHXJ(V:CJ;+AEHWNTR@`D`1(E(K[[4-^Y(]DT`(%8?0QN6(TMA^J
  331. XXM0Y*M<VUNL`9[(@0=@EREMBQ@$@1G&J@9(5RT-:9@HCZ7;BO/TQQ7_B49'2Y=
  332. XXMWK@3N6O#@3$S@1&%>07QE8TTP5Y^-*$M3$I2-J$2LIM/X9``D`1^VDJ[(F7J
  333. XXMPZV1D08O4",N:1=.G`9ZD-IOI#[<.K3NTR@`H(Z1SA&(N)39LA`BXL@`D`0$
  334. XXMR1;A7/"<[A7(PVZ_)2&[^10."0""X`>*X`>4X`>NX`>^X`?6X`?@X`?ZX`<,
  335. XXM\`<>\`<N\`<Z\`=,\`=<\`=N\`=Z\`>0\`><\`>H\`>Z\`?)\`?9\`?H\`?Y
  336. XXM\`<-``@A``@X``A'``A6``AN``A[``B1``B@``BL``B_``C0``CI``CX``@(
  337. XX9$`@6$`@E$`@P$`@_$`A-$`AH$`A[$`@)`PB@
  338. XX`
  339. XXend
  340. XSHAR_EOF
  341. Xecho 'File ckermit is complete' &&
  342. Xecho 'uudecoding file ckermit' &&
  343. Xuudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
  344. Xecho 'uncompressing file ckermit' &&
  345. Xcompress -d < _shar_cmp_.tmp > 'ckermit' && rm -f _shar_cmp_.tmp &&
  346. Xchmod 0755 ckermit ||
  347. Xecho 'restore of ckermit failed'
  348. XWc_c="`wc -c < 'ckermit'`"
  349. Xtest 91761 -eq "$Wc_c" ||
  350. X    echo 'ckermit: original size 91761, current size' "$Wc_c"
  351. Xrm -f _shar_wnt_.tmp
  352. Xfi
  353. Xrm -f _shar_seq_.tmp
  354. Xecho You have unpacked the last part
  355. Xexit 0
  356. SHAR_EOF
  357. $TOUCH -am 1222012790 'ckermit/ckermit.03' &&
  358. chmod 0644 ckermit/ckermit.03 ||
  359. echo 'restore of ckermit/ckermit.03 failed'
  360. Wc_c="`wc -c < 'ckermit/ckermit.03'`"
  361. test 19216 -eq "$Wc_c" ||
  362.     echo 'ckermit/ckermit.03: original size 19216, current size' "$Wc_c"
  363. # ============= doc/_basic.txt ==============
  364. if test ! -d 'doc'; then
  365.     echo 'x - creating directory doc'
  366.     mkdir 'doc'
  367. fi
  368. echo 'x - extracting doc/_basic.txt (Text)'
  369. sed 's/^X//' << 'SHAR_EOF' > 'doc/_basic.txt' &&
  370. X.*s 1 "Basic Organization"
  371. X
  372. XECU forks to run as two separate
  373. Xprocesses, a transmitter (XMTR) and a receiver (RCVR).
  374. XThe two processes
  375. Xcommunicate via signals and a System V shared memory segment.
  376. XXMTR controls RCVR and terminates it under certain circumstances,
  377. Xcalled here auxiliary operations.  After an auxiliary operation
  378. Xcompletes, XMTR forks again to recreate RCVR.
  379. X
  380. X.*s 2 "Transmitter Process (XMTR)"
  381. X
  382. XXMTR
  383. Xaccepts user input from the computer keyboard; input is recognized
  384. Xas belonging to one of two types: 1) transmit data and 2)
  385. XECU commands.  Keyboard input
  386. Xis passed to the serial line driver until an ECU command
  387. Xis detected.  Commands are prefixed with a 
  388. X.B HOME
  389. Xkey which causes ECU to accept keyboard data up to the next ENTER
  390. Xkey as command text.  After a command has been processed,
  391. Xkeyed data is again routed to the serial line.
  392. X
  393. X.*s 3 "Keyboard Interface"
  394. X
  395. XThe keyboard driver is set into the raw mode.
  396. XXMTR reads characters one at a time from the driver.
  397. XNormally, characters read from the keyboard are passed directly to
  398. Xthe serial line driver.  The
  399. XASCII ESC ("escape") character is handled as a special case.
  400. XWhen a function key is pressed, the keyboard generates
  401. Xto XMTR an ESC character,
  402. Xfollowed by more characters describing which function key has
  403. Xbeen pressed.
  404. XPressing the ESC key also causes XMTR to see an ESC character,
  405. Xbut with no subsequent function key "suffix".
  406. X
  407. XWhen an ESC character is read, XMTR delays transmission of the
  408. Xcharacter to the line for a short period to determine whether
  409. Xthe ESC key has been pressed or a function key has been pressed.
  410. XIf no "suffix" is detected, the ESC is passed to the line, having
  411. Xsuffered an insignificant delay given human typing speeds.
  412. X
  413. XIf a function key "suffix" is detected, the function key type
  414. Xis decoded.  The
  415. X.B HOME
  416. Xkey indicates an ECU command follows.  Any
  417. Xother function key is passed to the function key mapping feature
  418. X(described later).
  419. X
  420. X.*s 3 "ECU Command Assembly"
  421. X
  422. XAfter 
  423. X.B HOME
  424. Xhas been pressed, XMTR presents a reverse video prompt on the
  425. Xdisplay, indicating its readiness to accept a command.  During
  426. Xinput, the command may be edited using the same control keys
  427. Xspecified with stty(C).  Additonal editing
  428. Xusing the left and right arrow keys and the
  429. XIns(ert) key are usually available.
  430. XCommand input may be aborted by pressing ESC.
  431. XWhen a command string has been assembled, it is passed to the
  432. Xcommand processor, which breaks the command arguments into a token
  433. Xarray similar to the argc/argv array.  When the command handler
  434. Xreturns, XMTR returns to its normal mode of copying keyboard data to
  435. Xthe serial line.
  436. X
  437. XFurther information on XMTR command line processing may be found in 
  438. Xlater sections titled Line Editing and Interactive Command History.
  439. X
  440. X.*s 3 "Function Key Mapping"
  441. X
  442. XWhile in tty-to-line mode, function keys other than 
  443. X.B HOME
  444. Xare available to be mapped
  445. Xto transmit short keystroke sequences on a connection by
  446. Xconnection basis.  Under control of the dialing command ("Dial"
  447. Xdescribed below)  or the function key control command ("FK"),
  448. Xpredefined function key maps may be loaded.
  449. X
  450. XFunction keys which may be mapped are
  451. X.B F1
  452. Xthrough
  453. X.B F12 ,
  454. X.B PgUp ,
  455. X.B PgDn ,
  456. X.B End ,
  457. X.B Ins ,
  458. X.B Del ,
  459. Xand
  460. Xthe cursor control keys.
  461. X
  462. XThe unshifted keypad '5' key is permanently mapped to
  463. Xproduce a screen snapshot when it is pressed and XMTR is
  464. Xreading from the keyboard.
  465. X
  466. XThhe BackTab (shift Tab) key is mpermanently mapped to a screen
  467. Xredisplay feature.
  468. X
  469. X.*s 3 "Auxiliary Operation Control"
  470. X
  471. XCertain commands cause ECU to perform what is called an
  472. Xauxiliary operation, requiring temporary termination of the
  473. XRCVR process.  Such operations are not as useful
  474. Xwith
  475. X.B cu(C) ,
  476. Xbecause cu does NOT kill its receiver process at any time.
  477. XAs a result, it impossible to run a modern file transfer
  478. Xprotocol since the cu receiver process eats some of the
  479. Xcharacters sent by the remote protocol program.
  480. X
  481. XThere are two types of auxiliary operations:
  482. X1) internal interactive command or procedure
  483. Xexecution and 2) external program execution.
  484. XCertain
  485. X.B internal
  486. X.B commands
  487. Xrequire tight control over the serial line.
  488. XFor instance, the
  489. X.B dial
  490. Xcommand requires transmitting modem command
  491. Xstrings and receiving modem response codes.  Such functions
  492. Xare best accomplished by single-process control of the line.
  493. X.B External
  494. X.B program
  495. Xexecution is of two kinds, file transfer invocation
  496. Xand local shell/command execution.
  497. X
  498. XThe RCVR process is terminated in any of these cases either to
  499. Xavoid the RCVR swallowing characters intended for other
  500. Xtargets (the modem handler in XMTR or the file transfer protocol)
  501. Xor to avoid having remote data interspersed with the output of
  502. Xlocal programs.
  503. X
  504. X.*s 2 "Receiver Process (RCVR)"
  505. X
  506. XThe receiver process reads the incoming serial data stream and
  507. Xpasses it to the user terminal driver through a filter which
  508. Xscans for events such as the occurrence of ASCII BEL (bell)
  509. Xcharacters or terminal control sequences.  RCVR also handles
  510. Xthe session logging and ANSI filter functions.
  511. X
  512. X.*s 3 "ANSI Filter"
  513. X
  514. XSince the term "ANSI" is used to describe
  515. X.B many
  516. Xvariations on the ANSI X3.64 recommendations for terminal control (read
  517. X"IBM pseudo-ANSI"), the ECU receiver process has an "ANSI filter" which
  518. Xattempts to translate incompatible (read "MSDOS") ANSI-like control
  519. Xsequences to sequences acceptable to the UNIX/XENIX display driver.
  520. XThis includes support for the MS-DOS "save cursor" and "restore cursor"
  521. Xsequences.
  522. XMore information may be found later in "Terminal Model."
  523. X
  524. X.*s 3 "Session Logging"
  525. X
  526. XWhen directed by the user, the RCVR process logs incoming serial
  527. Xdata to a file named on the log command line.  The default operation
  528. Xis to filter unprintable characters (other than TAB and NL) from the
  529. Xlog, but raw logging is available with a command option.  In a like
  530. Xmanner, the default is for appending to an existing file, but a
  531. Xcommand option may specify scratching any previous contents.
  532. X
  533. XLog files receive header lines each time the file is
  534. Xopened, stating the logical system name, the telephone number
  535. Xand the date/time.
  536. X
  537. SHAR_EOF
  538. $TOUCH -am 1221210990 'doc/_basic.txt' &&
  539. chmod 0644 doc/_basic.txt ||
  540. echo 'restore of doc/_basic.txt failed'
  541. Wc_c="`wc -c < 'doc/_basic.txt'`"
  542. test 6049 -eq "$Wc_c" ||
  543.     echo 'doc/_basic.txt: original size 6049, current size' "$Wc_c"
  544. # ============= doc/_end.txt ==============
  545. echo 'x - extracting doc/_end.txt (Text)'
  546. sed 's/^X//' << 'SHAR_EOF' > 'doc/_end.txt' &&
  547. X
  548. X.br
  549. X.nr si 0n
  550. X.af % i
  551. X.ls 1
  552. X.TC 1 1 3
  553. SHAR_EOF
  554. $TOUCH -am 0711174289 'doc/_end.txt' &&
  555. chmod 0644 doc/_end.txt ||
  556. echo 'restore of doc/_end.txt failed'
  557. Wc_c="`wc -c < 'doc/_end.txt'`"
  558. test 39 -eq "$Wc_c" ||
  559.     echo 'doc/_end.txt: original size 39, current size' "$Wc_c"
  560. # ============= doc/_exit.txt ==============
  561. echo 'x - extracting doc/_exit.txt (Text)'
  562. sed 's/^X//' << 'SHAR_EOF' > 'doc/_exit.txt' &&
  563. X.*s 1 "Exit Codes"
  564. X
  565. XWhen ECU exits (terminates execution),
  566. Xit uses a code from the following table:
  567. X.DS L
  568. XOK                   0    no error
  569. XSIG1                 1    SIGHUP (signal 1)
  570. XSIGN                 64   signal 64 - see below
  571. XLINE_READ_ERROR      129  could not read from attached line
  572. XXMTR_WRITE_ERROR     130  could not write to attached line
  573. XXMTR_LOGIC_ERROR     131  software logic error
  574. XBSD4_IOCTL           132  not currently used
  575. XSHM_ABL              133  not currently used
  576. XSHM_RTL              134  not currently used
  577. XNO_FORK_FOR_RCVR     135  could not fork receiver process
  578. XTTYIN_READ_ERROR     136  could not read from console
  579. XLINE_OPEN_ERROR      137  could not attach (open) requested line
  580. XPWENT_ERROR          138  error in /etc/passwd processing
  581. XUSAGE                139  command line syntax error
  582. XCONFIG_ERROR         140  missing or erroroenous configuration file
  583. XINIT_PROC_ERROR      192  initial procedure terminated in error
  584. XUSER1                193  'exit' procedure command called with 1
  585. XUSERN                223  'exit' procedure command called with 31
  586. X.DE
  587. X
  588. XThe logical names 'SIG1' and 'SIGN' refer to a range of error codes
  589. Xsignifying ecu termination due to a signal.  A larger range (64) is
  590. Xreserved than is necessary to handle reasonable expansion of
  591. XSIG values in the OS. Not all signals will be reported
  592. Xin this manner. ECU will never report status 10 (signal 9, SIGKILL),
  593. Xfor instance.
  594. X
  595. XThe logical names 'USER1' and 'USERN' refer to a range of error
  596. Xexits codes reserved for use by the 'exit' procedure command.
  597. XSee the description of this command for more information.
  598. X
  599. XFor ecu friend code,
  600. Xformal C #define identifiers for exit codes may be found in
  601. Xecuhangup.h and consist of the above logical names prefixed with 'HANGUP_'.
  602. SHAR_EOF
  603. $TOUCH -am 1203150290 'doc/_exit.txt' &&
  604. chmod 0644 doc/_exit.txt ||
  605. echo 'restore of doc/_exit.txt failed'
  606. Wc_c="`wc -c < 'doc/_exit.txt'`"
  607. test 1767 -eq "$Wc_c" ||
  608.     echo 'doc/_exit.txt: original size 1767, current size' "$Wc_c"
  609. # ============= doc/_features.txt ==============
  610. echo 'x - extracting doc/_features.txt (Text)'
  611. sed 's/^X//' << 'SHAR_EOF' > 'doc/_features.txt' &&
  612. X.*s 2 "Supported Terminals"
  613. X
  614. XECU does not attempt to support terminal emulation in the classic
  615. Xsense of the word.  It presents to the remote host an "ANSI-like"
  616. Xterminal type as described earlier in the introduction and in 
  617. Xthe section titled "ANSI Filter."
  618. XHowever, it does support, with limitations, any LOCAL terminal
  619. X(console) for which a valid termcap description exists. You MAY
  620. Xbe able to use ECU with a remote terminal (calling into UNIX/XENIX
  621. Xover a network or modem), but you may get unfavorable results with
  622. Xfunction key usage if your modem is a "packetizing" type, such as
  623. Xa Telebit or if ethernet or other networking chops up your keystroke
  624. Xsequences.  ECU allows approximately 60 milliseconds after receiving
  625. Xan ASCII ESC character for later characters of a function key sequence
  626. Xto arrive.  If at least one character of the sequence has not been
  627. Xreceived in that time, ECU treats the key as an ESCape, not a function key.
  628. XThis typical problem of detecting ESC vs. function key is unfortunate, but
  629. Xwe must live with it until paradigms change (say, in about 2010?).
  630. X
  631. XThe termcap entry for a console
  632. XMUST contain a valid entry for the following database entries:
  633. X
  634. X.DS L
  635. Xcl      clear screen
  636. Xkl      cursor left
  637. Xkr      cursor right
  638. Xdc      delete character
  639. Xdl      delete line
  640. Xcd      clear to end of display
  641. Xce      clear to end of line
  642. Xic      insert character
  643. Xal      insert line ("add" a "line")
  644. Xcm      cursor motion
  645. Xso      stand out (terminal specific attention getter)
  646. Xse      stand end
  647. X.DE
  648. X
  649. XThe above sequences MUST be present, valid and reasonably efficient.
  650. XECU does not use curses during most of it's operation, and unlike
  651. Xcurses, makes no attempt to emulate missing terminal functionality.
  652. XFailure to provide valid entries will result in
  653. Xstrange behavior with no warning.
  654. X
  655. XNote that the formal termcap description of "kl" and "kr" 
  656. Xstate these are sequences generated by the terminal
  657. X.B keyboard ,
  658. Xbut ECU expects that these sequences also causes the desired
  659. Xeffect when
  660. X.B sent
  661. Xto the
  662. X.B screen .
  663. X
  664. XAdditionally, the following, optional, sequences will be used if
  665. Xthey are detected.
  666. X
  667. X.DS L
  668. Xmb      bold on ("XENIX" extension)
  669. Xme      bold off ("XENIX" extension)
  670. Xus      underscrore on
  671. Xue      underscrore off
  672. Xvb      visual bell
  673. X.DE
  674. X
  675. XA future version of ECU may use terminfo instead of termcap.
  676. XProblems with terminfo prevent its use at the present time.
  677. XIn addition, early versions of XENIX do not support terminfo.
  678. X
  679. X.*s 2 "Function Key Recognition"
  680. X
  681. XECU recognizes 23 function keys as having special significance
  682. Xto its operation.  They are (with their AT/"ANSI" character sequences):
  683. X.DS I
  684. XInternal  Description    AT/"ANSI" Char-
  685. XName      or Key Label   acter Sequence
  686. X--------  ------------   ---------------
  687. XF1        F1                ESC [ M
  688. XF2        F2                ESC [ N
  689. XF3        F3                ESC [ O
  690. XF4        F4                ESC [ P
  691. XF5        F5                ESC [ Q
  692. XF6        F6                ESC [ R
  693. XF7        F7                ESC [ S
  694. XF8        F8                ESC [ T
  695. XF9        F9                ESC [ U
  696. XF10       F10               ESC [ V
  697. XF11       F11               ESC [ W
  698. XF12       F12               ESC [ X
  699. XHome      Home              ESC [ H
  700. XEnd       End               ESC [ F
  701. XPgUp      Page up           ESC [ I
  702. XPgDn      Page down         ESC [ G
  703. XCUU       Up arrow          ESC [ A
  704. XCUD       Down arrow        ESC [ B
  705. XCUL       Left arrow        ESC [ D
  706. XCUR       Right arrow       ESC [ C
  707. XCU5       "Cursor 5"        ESC [ E
  708. XIns       Insert            ESC [ L
  709. XBkTab     Back Tab          ESC [ Z
  710. X.DE
  711. X
  712. XECU recognizes function keys entered by the user in
  713. Xone of two ways, depending upon whether the terminal is
  714. Xrecognized as an "ANSI" or "non-ANSI" terminal (see "Supported Terminals"
  715. Xabove).
  716. X
  717. XIf an AT/"ANSI" terminal is in use, ECU expects the standard AT/"ANSI" sequences
  718. Xto be generated by the keyboard according to the above table.
  719. XThis means that no use of the setkey(C) program (or similar functionality)
  720. Xmay be active.
  721. X
  722. XIf an "non-ANSI" terminal is in use, ECU matches a function key sequence
  723. Xto an internal function key representation
  724. Xby testing all keystroke sequences again an internal table loaded
  725. Xat the beginning of execution from the file ~/.ecu/nonansikeys.
  726. XNOTE that supported terminals MUST employ function keys which generate
  727. Xsequences beginning with an ASCII ESC (escape, 0x1B, decimal 27, octal 33).
  728. X
  729. XThe format of an file entry is shown below in the 'ansilike' example (used
  730. Xto test ECU from the console by defining an 'ansi' terminal type
  731. Xnevertheless equivalent to 'ansi').
  732. X
  733. XLines beginning with '#' are comments.
  734. X
  735. X.DS I
  736. X#+------------------------------
  737. X# ECU 3.0 nonansikeys
  738. X#-------------------------------
  739. Xansilike
  740. Xansi
  741. Xmsdos
  742. Xdos
  743. Xdosansi
  744. Xtest
  745. X    F1:F1:          esc [ M 
  746. X    F2:F2:          esc [ N 
  747. X    F3:F3:          esc [ O 
  748. X    F4:F4:          esc [ P 
  749. X    F5:F5:          esc [ Q 
  750. X    F6:F6:          esc [ R 
  751. X    F7:F7:          esc [ S 
  752. X    F8:F8:          esc [ T 
  753. X    F9:F9:          esc [ U 
  754. X    F10:F10:        esc [ V 
  755. X    F11:F11:        esc [ W 
  756. X    F12:F12:        esc [ X 
  757. X    Home:Home:      esc [ H 
  758. X    End:End:        esc [ F 
  759. X    PgUp:PgUp:      esc [ I 
  760. X    PgDn:PgDn:      esc [ G 
  761. X    CUU:CUU:        esc [ A 
  762. X    CUL:CUL:        esc [ D 
  763. X    CU5:CU5:        esc [ E 
  764. X    CUR:CUR:        esc [ C 
  765. X    CUD:CUD:        esc [ B 
  766. X    Ins:Ins:        esc [ L
  767. X    BkTab:BackTab:  esc [ Z
  768. X.DE
  769. X
  770. XThe first line(s) in a terminal keyboard description begin in
  771. Xcolumn 1 and contain the terminal types (a la $TERM) for which
  772. Xthe keyboard description are valid.  The example entry contains
  773. Xseveral references to terminal types containing the substring
  774. X'ansi'.  These are included only as an example of one keyboard
  775. Xdescription servicing multiple terminal types.
  776. X
  777. XECU determines whether a terminal meets the ansi vs.  ANSI
  778. Xdistinction by searching for 'ansi' in the $TERM environment
  779. Xvariable (without regard to case: 'AnSi' will match as well as
  780. X'ansi').  If your keyboard matches the ANSI specification even
  781. Xthough your $TERM environment variable does not contain 'ansi'
  782. X(such as 'sun'), then you may add the terminal type to the 'ansilike'
  783. Xentry rather than create a separate entry.
  784. X
  785. XFollowing the "first lines" are key definition entries, each
  786. Xpreceded by at least one tab or space.  Each entry is composed of
  787. Xthree fields delimited by commas.  The first field of an entry is
  788. Xthe internal ECU function key name and must be chosen from the
  789. Xfollowing strings (with no regard to case): "F1", "F2", "F3",
  790. X"F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "Home",
  791. X"End", "PgUp", "PgDn", "CUU" (cursor up), "CUL" (cursor left),
  792. X"CU5" (unshifted cursor pad 5), "CUR" (cursor right) and "CUD"
  793. X(cursor down). The
  794. Xsecond field contains the name of the key as it appears on the
  795. Xnon-ANSI keyboard (such as "F16" for End on the Wyse 60).  The
  796. Xthird field is a description of the character sequence generated
  797. Xby the non-ANSI keyboard when the chosen key is pressed; it is a
  798. Xstring of one or more tokens separated by spaces or tabs.
  799. X
  800. XNote that while ECU requires a function key sequence to begin with
  801. Xan ASCII ESC (escape), each table entry must contain
  802. Xan 'esc' as it's first sequence token.  This seemingly
  803. Xsuperfluous requirement ensures compatibility
  804. Xwith possible future support for function keys which do not
  805. Xbegin with ESC.
  806. X
  807. XIn addition, function key sequences may not contain the NUL (0)
  808. Xcharacter, nor may they exceed 10 characters, including the leading ESC.
  809. X
  810. XThe tokens are described in full in the following  sections titled
  811. X"Function Key Recognition" and "Function Key Mapping."
  812. X
  813. XPLEASE NOTE: ECU does not have a reasonable way for you to terminate
  814. Xit if there are no Home and End keys defined, so it refuses to proceed
  815. Xif no definitions are found.  Even so, if you have incorrect definitions,
  816. Xyou may not be able to get out of ECU without a kill -1 <pid> from
  817. Xanother terminal or hanging up your connection with UNIX/XENIX
  818. Xif using ECU from remote.
  819. X
  820. X.*s 2 "Function Key Mapping"
  821. X
  822. XECU recognizes function keys in a manner described in the above
  823. Xsection titled "Function Key Recognition."
  824. XThis section deals with how ECU behaves
  825. Xonce a function key has been recognized as having been entered
  826. Xat the keyboard. 
  827. X
  828. XAll function keys with the exception of the 
  829. X.B Home ,
  830. X.B BkTab
  831. X(shift TAB),
  832. Xand keypad unshifted 5 key can be programmed to emit selected strings.
  833. XFor instance, when communicating with a Stratus computer,
  834. Xdoing your best to emulate a VT100, a function key
  835. Xmap might be constructed as follows:
  836. X.DS L
  837. X F1  F1     F2  F2         Home ecu cmd     PgUp  dispform
  838. X F3  F3     F4  F4         End  enter       PgDn  cancel
  839. X F5  F5     F6  F6         Ins  local shell CUR5  Screen dump
  840. X F7  status F8  no status  BkTab restore receiver display
  841. X F9         F10 redisp     CUR^ ^           CUR>  >
  842. X F11        F12            CUR< <           CURv  v
  843. X.DE
  844. X
  845. XFunction key mapping is placed in ~/.ecu/keys.  The Stratus example:
  846. X.DS L
  847. Xstratus
  848. X    F1:F1:esc O q
  849. X    F2:F2:esc O r
  850. X    F3:F3:esc O s
  851. X    F4:F4:esc O t
  852. X    F5:F5:esc O u
  853. X    F6:F6:esc O v
  854. X    F7:F7:esc O w
  855. X    F8:status:dc4
  856. X    F9:no status:nl
  857. X    F10:redisp:esc O y
  858. X    F11:redisp:syn
  859. X    PGDN:cancel:esc O Q
  860. X    END:enter:esc O M
  861. X    PGUP:dispform:esc O R
  862. X    CUU:^:dle
  863. X    CUD:v:so
  864. X    CUL:<:stx
  865. X    CUR:>:ack
  866. X.DE
  867. X
  868. XIf you have installed the mapkey file (as described in the release directory
  869. Xin mapkeys/README), then ALT-a through ALT-z causes the "silent"
  870. Xexecution of procedures 'alt_a.ep' for ALT-a, 'alt_b.ep' for ALT-b, etc.
  871. XThe models subdirectory contains an example alt_h.ep which will home
  872. Xthe cursor when ALT-h is pressed.  This facility allows the execution
  873. Xof 26 procedures without ECU itself changing the video display at all.
  874. XAny changes to the display (short of procedure errors) will result
  875. Xsolely from the action of the invoked procedure.
  876. XIf the procedure matching the ALT-[a-z] key pressed cannot be found,
  877. Xa short error message is printed and the terminal bell is rung.
  878. X(Using back tab may be used to refresh the display in this event.)
  879. X
  880. XThe strings used to represent "non-printable" characters are identical
  881. Xto the formal ASCII names given them (without regard to case), viz:
  882. X.DS I
  883. X0x00 nul      NUL may not appear in a non-ANSI
  884. X0x01 soh      function key definition
  885. X0x02 stx 
  886. X0x03 etx 
  887. X0x04 eot 
  888. X0x05 enq 
  889. X0x06 ack 
  890. X0x07 bel 
  891. X0x08 bs  
  892. X0x09 ht  
  893. X0x0A nl  
  894. X0x0B vt  
  895. X0x0C np  
  896. X0x0D cr  
  897. X0x0E so  
  898. X0x0F si  
  899. X0x10 dle 
  900. X0x11 dc1 
  901. X0x12 dc2 
  902. X0x13 dc3 
  903. X0x14 dc4 
  904. X0x15 nak 
  905. X0x16 syn 
  906. X0x17 etb 
  907. X0x18 can 
  908. X0x19 em  
  909. X0x1A sub 
  910. X0x1B esc 
  911. X0x1C fs  
  912. X0x1D gs  
  913. X0x1E rs  
  914. X0x1F us  
  915. X0x20 sp  
  916. X0x7F del 
  917. X.DE
  918. X
  919. X.*s 2 "Host Video Control Sequences"
  920. X
  921. X.*s 3 "All Local Terminals"
  922. X
  923. XThe following sequences are recieved over the line
  924. Xby ECU and properly interpreted for all local terminal types
  925. X(multiscreen, rlogin/xterm pseudotty, serial).
  926. X
  927. X.DS L
  928. XSequence  | Description
  929. X----------+-------------------------------
  930. XESC [ @   | ICH
  931. XESC [ A   | CUU
  932. XESC [ B   | CUD
  933. XESC [ C   | CUF
  934. XESC [ D   | CUB
  935. XESC [ E   | CNL       See ANSI X3.64,
  936. XESC [ F   | CPL       screen(HW) and/or
  937. XESC [ H   | CUP       MS-DOS Technical
  938. XESC [ J   | ED        Reference Manual
  939. XESC [ K   | EL
  940. XESC [ L   | IL
  941. XESC [ M   | DL
  942. XESC [ P   | DCH
  943. XESC [ S   | SU
  944. XESC [ T   | SD
  945. XESC [ X   | ECH
  946. XESC [ `   | HPA
  947. XESC [ a   | HPR
  948. XESC [ d   | VPA
  949. XESC [ e   | VPR
  950. XESC [ f   | HVP
  951. XESC [ ? m | SGR
  952. XESC [ n   | DSR (see below)
  953. XESC [ s   | save cursor MS-DOSism
  954. XESC [ u   | restore cursor MS-DOSism
  955. X.DE
  956. X.DS L
  957. XSGR Sequences for ALL TERMINALS
  958. XSequence  | Description   |  Maps to termcap
  959. X----------+---------------+-------------------------------
  960. XESC [ 0 m | normal        |  "se"+"me"+"ue"
  961. XESC [ 1 m | bold          |  "so"
  962. XESC [ 4 m | underscore    |  "us"
  963. XESC [ 5 m | blink         |  "mb" (XENIX extension)
  964. XESC [ 7 m | reverse video |  "so"
  965. X.DE
  966. X
  967. X.*s 3 "Multiscreen Local Terminals"
  968. X
  969. XIn addition to the above, if you are operating from a color
  970. Xmultiscreen, additional (SCO and MS-DOS/ANSI.SYS) sequences
  971. Xare supported (see screen(HW)):
  972. X
  973. X.DS L
  974. XAdditional Multiscreen SGR Sequences
  975. XSequence    | Description  (no termcap mapping)
  976. X------------+-----------------------------------------------
  977. XESC [ 8 m   | non-display
  978. XESC [ 1 0 m | select primary font
  979. XESC [ 1 1 m | select first alternate font (0x00-0x1F)
  980. XESC [ 1 2 m | select second alternate font (0x80-0xFF)
  981. XESC [ 3 0 m | black foreground
  982. XESC [ 3 1 m | red foreground
  983. XESC [ 3 2 m | green foreground
  984. XESC [ 3 3 m | brown foreground
  985. XESC [ 3 4 m | blue foreground
  986. XESC [ 3 5 m | magenta foreground
  987. XESC [ 3 6 m | cyan foreground
  988. XESC [ 3 7 m | white foreground
  989. XESC [ 3 8 m | enables underline option
  990. XESC [ 3 9 m | disables underline option
  991. XESC [ 4 0 m | black background
  992. XESC [ 4 1 m | red background
  993. XESC [ 4 2 m | green background
  994. XESC [ 4 3 m | brown background
  995. XESC [ 4 4 m | blue background
  996. XESC [ 4 5 m | magenta background
  997. XESC [ 4 6 m | cyan background
  998. XESC [ 4 7 m | white background
  999. X.DE
  1000. X
  1001. X.s 3 "MS-DOS 'SGR Gaggles'"
  1002. X
  1003. XECU also does it's best to interpret MS-DOS "SGR gaggles" such as
  1004. X.DS I
  1005. XESC [ 5 ; 3 4 ; 4 7 m
  1006. X.DE
  1007. Xwhich means "set the terminal to white background with
  1008. Xblue blinking foreground."
  1009. X
  1010. X.*s 3 "Character Mapping"
  1011. X
  1012. XThe MS-DOS ROM signal ruling
  1013. Xcharacters from the following table are mapped after the fashion of:
  1014. X
  1015. X.DS L
  1016. X       .-----+--------.
  1017. X       |     |        |
  1018. X       |     +--------+
  1019. X       |     |        |
  1020. X       +-----+        |
  1021. X       |     |        |
  1022. X       `-----+--------'
  1023. X.DE
  1024. X.DS L
  1025. XMapped Characters (see pc_scr.h):
  1026. XHex  | Description
  1027. X-----+---------------------------
  1028. X0xDA | top left single rule
  1029. X0xBF | top right single rule
  1030. X0xC0 | bottom left single rule
  1031. X0xD9 | bottom right single rule
  1032. X0xC3 | left hand T
  1033. X0xB4 | right hand T
  1034. X0xB3 | vertical rule
  1035. X0xC4 | horizontal rule
  1036. X.DE
  1037. X
  1038. X(Due to momentary laziness on the part of the author, double
  1039. Xruling characters will appear as random druk, unless your terminal
  1040. Xis smart enough to have joined the Church of the True-Blue ROM.
  1041. XOne day an X version of this program will appear and you can choose
  1042. Xto no longer accomplish real work, but may spend your days editing
  1043. X42Kb resource files which will give you TAC, Total Anal Control,
  1044. Xover all this.)
  1045. X
  1046. X.*s 2 "Line Editing"
  1047. X
  1048. XWhen you are entering a line of text for an ecu command or in
  1049. Xa field on a screen, you may edit it in a number of ways at any
  1050. Xtime prior to pressing Enter.  Cursor Left moves the cursofr left
  1051. Xby one character position, nondestructively.  Cursor Right moves
  1052. Xto the right.  Insert toggles insert mode.  Backspace (your
  1053. Xerase key as specified to stty in commands, the actual backspace key
  1054. Xin screens) deletes the character to the left of the cursor.
  1055. XYour line kill key (as specified to stty) in command mode or
  1056. Xthe ^U character in screen mode erases the entire line.  Esc
  1057. Xin command mode cancels the command.  Esc in screen mode usually
  1058. Xcancels the screen or subfunction in a screen.  ^L or ^R in
  1059. Xinteractive command mode shows the current state of Insert mode and
  1060. Xredisplays the edited string.
  1061. X
  1062. X.*s 2 "Screen Dump"
  1063. X
  1064. XWhen the "cursor 5" key is pressed, the screen contents are
  1065. Xdumped to a file.  By default, this file is named '~/.ecu/screen.dump'.
  1066. XThe
  1067. X.B sdname
  1068. Xinteractive command either displays or changes the current screen
  1069. Xdump file name, depending upon whether or not a argument
  1070. Xis supplied.
  1071. XThe
  1072. X.B scrdump
  1073. Xprocedure command can initiate a dump.
  1074. X
  1075. X.*s 3 "Multiscreen and Non-Multiscreen"
  1076. XNote that from multiscreens, screen dump produces a dump of the
  1077. Xactual screen contents, including ECU-generated output.  When
  1078. Xusing a non-multiscreen terminal, screen dump dumps only the 
  1079. Xshared memory virtual screen as received from the host.
  1080. XIf standard input is not a serial line (xterm o or /dev/null),
  1081. Xscreen dumps will be of the non-multiscreen type.
  1082. X
  1083. XIf, at a multiscreen, you wish a screen dump free of ECU output
  1084. X"pollution," use Shift-Tab (BkTab) to redraw the screen, then
  1085. Xperform the screen dump.
  1086. X
  1087. X.*s 3 "Multiscreen Bug"
  1088. XThere has been a bug in the multiscreen driver for some time
  1089. Xwherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
  1090. Xthe "ESC [ 2" part "active".  When a screen dump (Cursor 5)
  1091. Xcommand is given, I do the sacreen dump, then send a "l" to the
  1092. Xscreen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
  1093. Xessentially a no-op).  If and when it gets fixed, you'll see an
  1094. X"l" show up on your screen after a screen dump sequence.  To fix
  1095. Xthis, comment out the
  1096. X.DS I
  1097. X#define MULTISCREEN_DUMP_BUG
  1098. X.DE
  1099. Xat the top of ecuscrdump.c.
  1100. X
  1101. X.*s 2 "Interactive Command History"
  1102. X
  1103. XAfter pressing the Home key, pressing it again invokes the
  1104. Xinteractive command history function.  After the second
  1105. XHome key is pressed, the last interactive command is
  1106. Xredisplayed. Line editing may be performed on the command as described
  1107. Xin the previous section.
  1108. X
  1109. XAdditionally, using the Cursor Up key accesses less recent commands.
  1110. XThe Cursor Down key accesses more recent commands.  Pressing Enter causes
  1111. Xthe command to be executed.  Pressing Esc aborts command entry.
  1112. X
  1113. X.*s 2 "Dialing Directory"
  1114. X
  1115. XECU provides an on-line editable dialing directory.  Remote
  1116. Xsystems are defined as records using alphanumeric identifiers
  1117. Xas keys.  Other record fields include telephone number, baud
  1118. Xrate, parity and textual description.
  1119. X
  1120. XOther features include changing to alternate dialing directory
  1121. Xand a multi-number redial cycle function. Refer below to the description
  1122. Xof the interactive
  1123. X.B dial
  1124. Xcommand.
  1125. X
  1126. X.*s 2 "Online Command Dictionary"
  1127. X
  1128. XThe ECU help command presents a display of interactive commands.  The user
  1129. Xis then prompted to enter a command name for further, Unix-style
  1130. X"usage" information.
  1131. X
  1132. X.*s 2 "Multiscreen Event Alarm"
  1133. X
  1134. XBy using the 
  1135. X.B BN
  1136. X(bell notify) interactive command, an audible alert is sent to all
  1137. Xmultiscreens when an ASCII BEL (bell) is received or when a file
  1138. Xtransfer completes.  An additional option causes an alert when ANY
  1139. Xdata is received from the line.  This makes it simple to do work on
  1140. Xother multiscreen consoles and be alerted when attention to the
  1141. Xcommunications session is required.
  1142. X
  1143. XFor instance, the Berkeley 4.x Unix utility "talk" rings the bell when
  1144. Xanother user wishes an interactive chat mode.  BSD "biff" rings the bell
  1145. Xwhen incoming mail is received.  Scripts or commands at remote sites can
  1146. Xbe configured to ring the bell as in:
  1147. X.DS I
  1148. Xmake foo bar; bell; make more_stuff; bell;
  1149. X.DE
  1150. Xto call attention to the ECU user when work is being done
  1151. Xon other multiscreen consoles.
  1152. X
  1153. XThis feature is only available when you are running ECU from a multiscreen.
  1154. X
  1155. X.*s 2 "Built-in Modem Dialer"
  1156. X
  1157. XThe built-in ECU dialer supports modems which use the 
  1158. X.B
  1159. XHayes-style AT command set or most variants
  1160. X.R
  1161. X.B thereof .
  1162. XIt is used when HoneyDanBer UUCP is not installed or when there is no
  1163. Xentry in the /usr/lib/uucp/Devices file for the selected outgoing line.
  1164. X(For more information, see the later section titled "HoneyDanBer UUCP
  1165. XInterface".)
  1166. X
  1167. XThe built-in dialer uses files in the /usr/lib/ecu directory which
  1168. Xcontains modem initialization information.  Modem initialization
  1169. Xfilenames are made from concatenating the tty name with ".mi".  For
  1170. Xinstance, tty1a's initialization file is named "tty1a.mi".
  1171. X
  1172. XCommands for initializing the modem and for dialing may be specified in
  1173. Xa very flexible manner.  Separate init and dial strings for each legal
  1174. Xbaud rate, a single pair of strings for all baud rates or a combination
  1175. Xmay be specified.
  1176. X.DF L
  1177. X.hl
  1178. X.ce 1
  1179. XSample Modem Initialization Files
  1180. X
  1181. X#+-----------------------------------------------------------
  1182. X#  tty1a.mi - Microcom AX/9624c
  1183. X#------------------------------------------------------------
  1184. Xinit_>2400:ATS11=47X4S0=0S7=30\Q1\X1\N3   # baud rates > 2400
  1185. Xinit_default:ATS11=47X4S0=0S7=30\Q0\X0\N0 # other baud rates
  1186. Xdial_default:ATDT
  1187. X
  1188. X
  1189. X#+-----------------------------------------------------------
  1190. X#  tty2d.mi - USR Courier 2400
  1191. X#------------------------------------------------------------
  1192. Xinit_default:ATS11=47 X4 S0=0 S7=32
  1193. Xdial_default:ATDT
  1194. X
  1195. X.DE
  1196. X
  1197. X.*s 2 "File Transfer"
  1198. X
  1199. XECU supports numerous file transfer protocols: as of this writing,
  1200. XXMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch, ZMODEM/CRC-16,
  1201. XZMODEM/CRC-32, and Kermit are supported.  Although a seamless interface
  1202. X(there's some yuppie marketing newspeak) is provided to the user,
  1203. Xtransfer is facilitated by executing external programs.
  1204. X
  1205. XAs of this writing SEAlink is not in the best of health (no one
  1206. Xhas complained :-).
  1207. X
  1208. XKermit support required you to obtain and patch C-Kermit 4E.
  1209. XThe patch information is available in the ckermit subdirectory
  1210. Xof the release.  As soon as C-Kermit 5 is stable and released by
  1211. XColumbia, a suitable patch will be developed for it.  It
  1212. Xis quite possible no patching will be necessary.
  1213. X
  1214. XXMODEM, YMODEM and ZMODEM transfers (thanks to modified public domain
  1215. Xprograms by Chuck Forsberg) present dynamic status displays similar to
  1216. Xthe following:
  1217. X.DS L
  1218. X    .-[ ecusz 2.37 ]-- /tmp -----------------------------------.
  1219. X    |  ZMODEM/CRC32  Data xfer rate ~=    896 chars/sec        |
  1220. X    |  File   1 of   1: ckermit-5a-130                         |
  1221. X    |  File position:     34053 length:    34053  -rw-r--r--   |
  1222. X    |  Sending 34053 bytes  total time ~=  0:40                |
  1223. X    |  tx: hdr ZFIN  0             rx: hdr ZFIN  0             |
  1224. X    |  Comm I/O: rx      175  tx    34393 bytes                |
  1225. X    |  Baud rate:  9600 BINARY blklen:  1024 comm mode: NORMAL |
  1226. X    |  Time:         started: 17:31:50  this file: 17:31:51    |
  1227. X    |  17:32:29      elapsed: 00:00:39             00:00:38    |
  1228. X    |  Errors: this file:   0 total:    0 files skipped:   0   |
  1229. X    |  Total file bytes transferred: 34053                     |
  1230. X    |  End of file                                             |
  1231. X    |  Remote: CRC32 y  duplex y  continuous stream y          |
  1232. X    `- Connected to ki4xo - procedure put_ck5a ----------------'
  1233. X.DE
  1234. X
  1235. X.*s 2 "Procedures (Scripts)"
  1236. X
  1237. XA powerful, language-style procedure language is incorporated
  1238. Xinto ECU.  The language is described in later sections.
  1239. X
  1240. X.*s 2 "Initial (Startup) Procedure"
  1241. X
  1242. XAn
  1243. X.B
  1244. Xinitial procedure
  1245. X.R
  1246. Xmay be be specified to ECU either to initialize an interactive
  1247. Xsession or to execute an entirely unattended or "batch"
  1248. Xcommunication session.
  1249. X
  1250. X
  1251. X.*s 2 "Home Directory Files"
  1252. X
  1253. XECU control files reside in the .ecu subdirectory of
  1254. Xeach user's home directory.  For example, in home directory /usr/wht:
  1255. X.DS I
  1256. X/usr/wht/.ecu/dir            CD interactive command history file
  1257. X/usr/wht/.ecu/keys           function key mapping
  1258. X/usr/wht/.ecu/nonansikeys    function key mapping
  1259. X/usr/wht/.ecu/log            connect, file transfer history
  1260. X/usr/wht/.ecu/phone          default dialing directory
  1261. X/usr/wht/.ecu/colors         colors used by ECU
  1262. X.DE
  1263. X
  1264. XThe .ecu directory is also searched for ECU procedure files
  1265. X(having the '.ep' extension) in the procedure cannot be found in
  1266. Xthe current working directory.
  1267. X
  1268. X.*s 2 "Lock Files"
  1269. X
  1270. XECU maintains lock files in /usr/spool/uucp in accordance with the
  1271. XHoneyDanBer UUCP conventions (ASCII pids as 10-character strings
  1272. Xfollowed by a newline).  Lock files are created for the lower-case
  1273. Xdevice names of
  1274. Xa line and checked for in both cases.  
  1275. XFor example, both LCK..tty1a is created when
  1276. X/dev/tty1a OR /dev/tty1A is selected and neither LCK..tty1a nor
  1277. XLCK..tty1A are active.  See the later section titled
  1278. X"HoneyDanBer UUCP Interface".
  1279. X
  1280. X.*s 2 "Dial-In/Dial-Out Line Support"
  1281. X
  1282. XECU works with the SCO getty to support dialing out on a line
  1283. Xenabled for login.  After use of the line is complete,
  1284. XECU signals the system to restore incoming call status to
  1285. Xthe line.
  1286. XSee the later section titled "HoneyDanBer UUCP Interface".
  1287. X
  1288. X.*s 2 "Tools"
  1289. X
  1290. XCommands are provided for conversion of hexadecimal or decimal numbers
  1291. Xto and from ASCII equivalents.  For example, 26(10) == 0x1a == ^Z == SUB.
  1292. XFor details, refer to the description of the
  1293. X.B XA
  1294. Xand
  1295. X.B AX
  1296. Xinteractive commands.
  1297. X
  1298. X.*s 2 "Shared Memory 'Friend' Interface"
  1299. X
  1300. XECU maintains a copy of the received screen image (80 x 43
  1301. Xmaximum) and other
  1302. Xinformation in its shared memory segment.  Normally, this
  1303. Xinformation is used only by the transmitter and receiver
  1304. Xprocess.  However,  ECU supports the concept of a
  1305. X.B friend
  1306. Xprocess which may access the shared memory segment, perform
  1307. Xarbitrary auxiliary operations, read from and write to the
  1308. Xattached communications line and communicate resulting information
  1309. Xor status to an ECU procedure via a 1024-byte "friend"
  1310. Xdata area in the shared memory segment.
  1311. X
  1312. XThe procedure language supports the friend
  1313. Xprocess concept through commands and functions which allow
  1314. X.BL
  1315. X.LI
  1316. Xpassing the ECU shared memory segment id (%shmid) to a called
  1317. Xprogram,
  1318. X.LI
  1319. Xreading a single character or string of characters from
  1320. Xscreen memory,
  1321. X.LI
  1322. Xreading cursor position information and
  1323. X.LI
  1324. Xreading and writing of characters, short or long integers and
  1325. Xstrings in the 1024-byte "friend" shared memory data area.
  1326. X.LE
  1327. X
  1328. XThe algorithm for obtaining the shared memory segment key is
  1329. X.DS L
  1330. X0xEC000000L + transmitter process id
  1331. X.DE
  1332. XThus a "friend" process may either use a %shmid 
  1333. X.B
  1334. Xshared memory key
  1335. X.R
  1336. Xpassed as an argument or obtain the 
  1337. X.B
  1338. Xshared memory key
  1339. X.R
  1340. Xby using:
  1341. X.DS L
  1342. Xkey_t shmkey = 0xEC000000L | getppid();
  1343. X.DE
  1344. X
  1345. XThis facility allows batch and interactive applications
  1346. Xto be developed with C programs which would be
  1347. Xtedious or impractical to implement with procedure language alone.
  1348. X
  1349. XFor more information, refer to the shared memory header file
  1350. X.B ecushm.h ,
  1351. Xthe
  1352. X.B ecufriend
  1353. Xsubdirectory of the software release
  1354. Xand to the description of the
  1355. X.B %shmid ,
  1356. X.B %cury
  1357. Xand
  1358. X.B %curx
  1359. Xprocedure functions
  1360. Xand the
  1361. X.B getf
  1362. Xand
  1363. X.B putf
  1364. Xprocedure commands.
  1365. SHAR_EOF
  1366. $TOUCH -am 1221234090 'doc/_features.txt' &&
  1367. chmod 0644 doc/_features.txt ||
  1368. echo 'restore of doc/_features.txt failed'
  1369. Wc_c="`wc -c < 'doc/_features.txt'`"
  1370. test 25444 -eq "$Wc_c" ||
  1371.     echo 'doc/_features.txt: original size 25444, current size' "$Wc_c"
  1372. true || echo 'restore of doc/_hdb.txt failed'
  1373. echo End of part 31, continue with part 32
  1374. exit 0
  1375. --------------------------------------------------------------------
  1376. Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
  1377. Hacker Extraordinaire  d' async PADs,  pods,  proteins and protocols
  1378.  
  1379. exit 0 # Just in case...
  1380. -- 
  1381. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1382. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1383. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1384. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1385.